﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.Interfaces;
using Dados.ValueObjects;
using Dados.INFTURDataSetTableAdapters;

namespace Dados.ClassesSQLServer
{
   

        public class HospedagemSqlServer : IVendaHospedagem
        {
            T_HospedagemTableAdapter hospedagemTA = new T_HospedagemTableAdapter();

            public int Insere(HospedagemVO HospVO)
            {
                try
                {
                    return hospedagemTA.Insert(HospVO.Cliente,Convert.ToDecimal(HospVO.Preco), HospVO.Hotel, HospVO.Data_entrada, HospVO.Data_saida, HospVO.Quarto, HospVO.Usuario);
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
            public int Atualiza(HospedagemVO HospVO)
            {
                try
                {
                    return hospedagemTA.Update (HospVO.Cliente, Convert.ToDecimal(HospVO.Preco), HospVO.Hotel, HospVO.Data_entrada, HospVO.Data_saida, HospVO.Quarto, HospVO.Usuario,HospVO.Id);
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
            public int Remove(int id)
            {
                try
                {
                    return hospedagemTA.Delete(id);
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
            public HospedagemVO Consulta(int id)
            {
                try
                {
                    HospedagemVO HospVO = null;
                    INFTURDataSet.T_HospedagemDataTable dtHospedagem = hospedagemTA.GetHospedagemPorID(id);
                    if (dtHospedagem.Count > 0)
                    {
                        HospVO = new HospedagemVO();
                        HospVO.Cliente = dtHospedagem[0].tx_Cliente;
                        HospVO.Preco = Convert.ToDouble (dtHospedagem[0].nr_preco);
                        HospVO.Hotel = dtHospedagem[0].nr_Hotel;
                        HospVO.Data_entrada = dtHospedagem[0].dt_Entrada;
                        HospVO.Data_saida = dtHospedagem[0].dt_saida;
                        HospVO.Quarto = dtHospedagem[0].tx_Quarto;
                        HospVO.Usuario = dtHospedagem[0].tx_Usuario;
                        HospVO.Id = dtHospedagem[0].ID;
                    }
                    return HospVO;
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
            // falta terminar esta classe com o List

            public List<HospedagemVO> ConsultaTodos()
            {
                try
                {
                    List<HospedagemVO> lcHospVO = new List<HospedagemVO>();
                    INFTURDataSet.T_HospedagemDataTable dt = hospedagemTA.GetData();


                    foreach (INFTURDataSet.T_HospedagemRow cRow in dt)
                    {
                        HospedagemVO HospVO = new HospedagemVO();
                        HospVO.Id = cRow.ID;
                        HospVO.Cliente = cRow.tx_Cliente;
                        HospVO.Data_entrada = cRow.dt_Entrada;
                        HospVO.Data_saida = cRow.dt_saida;
                        HospVO.Preco = Convert.ToDouble(cRow.nr_preco);
                        HospVO.Hotel = cRow.nr_Hotel;
                        HospVO.Quarto = cRow.tx_Quarto;
                        HospVO.Usuario = cRow.tx_Usuario;
                        lcHospVO.Add(HospVO);


                    }
                    return lcHospVO;
                }

                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }

            }
        }

    }
